home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / xsw / bootinfo.c next >
C/C++ Source or Header  |  1995-05-09  |  10KB  |  425 lines

  1. /***************************************************************************
  2.  *
  3.  *    Copyright (c) 1990-1993        The Santa Cruz Operation, Inc.
  4.  *
  5.  *    All rights reserved.  No part of this program or publication may be
  6.  *    reproduced, transmitted, transcribed, stored in a retrieval system,
  7.  *    or translated into any language or computer language, in any form or
  8.  *    by any means, electronic, mechanical, magnetic, optical, chemical,
  9.  *    biological, or otherwise, without the prior written permission of:
  10.  *
  11.  *        The Santa Cruz Operation , Inc.        (408) 425-7222
  12.  *        400 Encinal St., Santa Cruz, California 95060 USA
  13.  *
  14.  **************************************************************************/
  15. /*      
  16.  *    SCCS Stuff
  17.  *
  18.  *    @(#) bootinfo.c 12.1 95/05/09 SCOINC
  19.  *
  20.  *
  21.  * S001, 01-Jan-93, rickra
  22.  *     Added support for seperate windows, and reformatted
  23.  *
  24.  * S000, 30-Sep-92, rickra
  25.  *     Added copyright and modification history
  26. */
  27.  
  28. /*+-------------------------------------------------------------------------
  29.     bootinfo.c - xsw bootinfo struct display
  30.  
  31.   Defined functions:
  32.     bmemf_text(flags)
  33.     draw_Bootinfo(x,y)
  34.  
  35. --------------------------------------------------------------------------*/
  36. /*+:EDITS:*/
  37. /*:09-25-1990-05:11-wht@n4hgf-release heh-heh x0.22 preliminary */
  38. /*:09-20-1990-00:09-wht@n4hgf-scales, sysinfo/minfo, bootinfo working */
  39. /*:09-19-1990-23:17-wht@n4hgf-adapt u386mon source */
  40. #include <X11/Xlib.h>
  41. #include <X11/Xutil.h>
  42. #include <X11/Intrinsic.h>
  43. #include <X11/Shell.h>
  44. #include <Xm/Xm.h>
  45. #include <Xm/MainW.h>
  46. #include <Xm/DrawingA.h>
  47.  
  48. #include "include/unixincs.h"
  49. #include "include/buttons.h"
  50. #include "include/xsw.h"
  51.  
  52.  
  53. static int      line_style = LineSolid;
  54. static int      cap_style = CapButt;
  55. static int      join_style = JoinMiter;
  56.  
  57.  
  58. /*+-------------------------------------------------------------------------
  59.     bmemf_text(flags)
  60. --------------------------------------------------------------------------*/
  61. char           *
  62. bmemf_text (flags)
  63.      ulong           flags;
  64. {
  65.   static char     hex_errant[16];
  66.   ulong           orig_flags = flags;
  67.  
  68. #if defined(B_MEM_DOWN)        /* SCO only */
  69.   flags &= ~B_MEM_DOWN;
  70. #endif
  71. #if defined(B_MEM_EXPANS)    /* ISC */
  72.   flags &= ~B_MEM_EXPANS;
  73. #endif
  74. #if defined(B_MEM_SHADOW)    /* ISC */
  75.   flags &= ~B_MEM_SHADOW;
  76. #endif
  77. #if defined(B_MEM_TREV)        /* ISC */
  78.   flags &= ~B_MEM_TREV;
  79. #endif
  80.  
  81.   if (!flags)
  82.     return ("    ");
  83.   switch (flags)
  84.     {
  85.     case B_MEM_RSRVD:
  86.       return ("RSVD");
  87.     case B_MEM_KTEXT:
  88.       return ("KTXT");
  89.     case B_MEM_KDATA:
  90.       return ("KDTA");
  91.     case B_MEM_KBSS:
  92.       return ("KBSS");
  93.     case B_MEM_SPECIAL:
  94.       return ("SPCL");
  95.     case B_MEM_DOWN:
  96.       return ("DOWN");
  97.     case B_MEM_CANTDMA:
  98.       return ("NODM");
  99.     case B_MEM_EISA:
  100.       return ("EISA");
  101.     }
  102.   sprintf (hex_errant, "%04x", (ushort) orig_flags);
  103.   return (hex_errant);
  104. }                /* end of bmemf_text */
  105.  
  106. /*+-------------------------------------------------------------------------
  107.     machinetype_text(machine)
  108. --------------------------------------------------------------------------*/
  109. char           *
  110. machinetype_text (machine)
  111.      unsigned char   machine;
  112. {
  113.   switch (machine)
  114.     {
  115. #if defined(UNKNOWN)
  116.     case UNKNOWN:
  117.       return ("");
  118.       break;
  119. #endif
  120.  
  121. #if defined(COMPAQ)
  122.     case COMPAQ:
  123.       return ("Compaq");
  124.       break;
  125. #endif
  126.  
  127. #if defined(TANDY)
  128.     case TANDY:
  129.       return ("Tandy");
  130.       break;
  131. #endif
  132.  
  133. #if defined(Z1000)
  134.     case Z1000:
  135.       return ("Z1000");
  136.       break;
  137. #endif
  138.  
  139. #if defined(WYSE)
  140.     case WYSE:
  141.       return ("Wyse");
  142.       break;
  143. #endif
  144.  
  145. #if defined(IBM)
  146.     case IBM:
  147.       return ("IBM");
  148.       break;
  149. #endif
  150.  
  151. #if defined(AT_BRIDGE)
  152.     case AT_BRIDGE:
  153.       return ("AT");
  154.       break;
  155. #endif
  156.  
  157. #if defined(MITAC)
  158.     case MITAC:
  159.       return ("Mitac");
  160.       break;
  161. #endif
  162.  
  163. #if defined(SYSTEMPRO)
  164.     case SYSTEMPRO:
  165.       return ("SystemPro");
  166.       break;
  167. #endif
  168.  
  169. #if defined(APRICOT)
  170.     case APRICOT:
  171.       return ("Apricot");
  172.       break;
  173. #endif
  174.  
  175. #if defined(UNISYS)
  176.     case UNISYS:
  177.       return ("Unisys");
  178.       break;
  179. #endif
  180.  
  181. #if defined(HP)
  182.     case HP:
  183.       return ("HP");
  184.       break;
  185. #endif
  186.  
  187. #if defined(OLIVETTI)
  188.     case OLIVETTI:
  189.       return ("Olivetti");
  190.       break;
  191. #endif
  192.  
  193. #if defined(ACER)
  194.     case ACER:
  195.       return ("Acer");
  196.       break;
  197. #endif
  198.  
  199. #if defined(TI)
  200.     case TI:
  201.       return ("TI");
  202.       break;
  203. #endif
  204.  
  205. #if defined(NEC)
  206.     case NEC:
  207.       return ("NEC");
  208.       break;
  209. #endif
  210.  
  211. #if defined(AST_MF)
  212.     case AST_MF:
  213.       return ("AST");
  214.       break;
  215. #endif
  216.  
  217.  
  218.     }
  219.   return ("i386");
  220. }                /* end of ISC_machinetype_text */
  221.  
  222. /*+-------------------------------------------------------------------------
  223.     ISC_displaytype_text(adapter)
  224. --------------------------------------------------------------------------*/
  225. #if defined(ME_COMPAQVGA)    /* ISC machdep.h */
  226. char           *
  227. ISC_displaytype_text (adapter)
  228.      unsigned char   adapter;
  229. {
  230.  
  231.   switch (adapter)
  232.     {
  233.     case ME_UNKNOWN:
  234.       return ("unknown to sys");
  235.       break;
  236.     case ME_EGA:
  237.       return ("EGA");
  238.       break;
  239.     case ME_CGA80:
  240.       return ("CGA");
  241.       break;
  242.     case ME_MONO:
  243.       return ("MONO");
  244.       break;
  245.     case ME_COMPAQHR:
  246.       return ("Compaq mono");
  247.       break;
  248.     case ME_Z449:
  249.       return ("Zenith Z449");
  250.       break;
  251.     case ME_T5100:
  252.       return ("Toshiba T5100");
  253.       break;
  254.     case ME_COMPAQVGA:
  255.       return ("Compaq VGA");
  256.       break;
  257.     case ME_OTHERVGA:
  258.       return ("VGA");
  259.       break;
  260. #if defined(ME_PVGA1)
  261.     case ME_PVGA1:
  262.       return ("Paradise VGA1");
  263.       break;
  264. #endif                /* ME_PVGA1 */
  265. #if defined(ME_V7VGA)
  266.     case ME_V7VGA:
  267.       return ("Video 7 VGA");
  268.       break;
  269. #endif                /* ME_V7VGA */
  270.     }
  271.   return ("???");
  272. }                /* end of ISC_displaytype_text */
  273.  
  274. #endif
  275.  
  276. /*+-------------------------------------------------------------------------
  277.     draw_Bootinfo(window,display,gc,DrawAreaXYWH,x,y)
  278. --------------------------------------------------------------------------*/
  279. int
  280. draw_Bootinfo (SP, x, y)
  281.      struct NetworkXswStruct *SP;
  282.      int             x;
  283.      int             y;
  284.  
  285. {
  286.   Window          window = SP -> SEPERATE_WINDOWS_LIST[BUTTON_tune_var].window;
  287.   Display        *display = SP -> SEPERATE_WINDOWS_LIST[BUTTON_tune_var].display;
  288.   GC              gc = SP -> SEPERATE_WINDOWS_LIST[BUTTON_tune_var].gc;
  289.   XWindowAttributes DrawAreaXYWH = SP -> SEPERATE_WINDOWS_LIST[BUTTON_tune_var].DrawAreaXYWH;
  290.   Pixmap          pixmap = SP -> SEPERATE_WINDOWS_LIST[BUTTON_tune_var].pixmap;
  291.  
  292.   register        itmp;
  293.   register struct bootmem *bmem;
  294.   char           *cptr;
  295.   char            s80[80];
  296.   char            s256[256];
  297.   char            s1024[1024];
  298.   char           *temp_s;
  299.   int             fwidth = FWIDTH;
  300.   int             fheight = FHEIGHT;
  301.   int             len;
  302.   int             x2 = x;
  303.   int             yl1 = y + (FASCENT / 2);
  304.   int             yl2 = y + (fheight / 2) - 1;
  305.   int             ys = y + FASCENT;
  306.   int             starting_at = y;
  307.   int             j = 0;
  308.   int             current_length = 0;
  309.   int             tab_count = 0;
  310.  
  311.  
  312.   cptr = "---Bootinfo-----------";
  313.   len = strlen (cptr);
  314.   /* the "background" bar */
  315.   XSetForeground (display, gc, colorTitleBarBG.pixel);
  316.   XSetLineAttributes (display, gc, fheight, line_style, cap_style, join_style);
  317. /*
  318.   XDrawLine (display, window, gc, x, yl1, x + (len * fwidth), yl1);
  319. */
  320.   XDrawLine (display, pixmap, gc, x, yl1, x + (len * fwidth), yl1);
  321.  
  322.   /* draw the black line before "Bootinfo" */
  323.   XSetForeground (display, gc, colorTitleBarFG.pixel);
  324.   XSetLineAttributes (display, gc, FASCENT / 2, line_style, cap_style, join_style);
  325. /*
  326.   XDrawLine (display, window, gc,
  327.          x2, yl1,
  328.          x2 + (len = (fwidth * 3)) - FGAP, yl1);
  329. */
  330.   XDrawLine (display, pixmap, gc,
  331.          x2, yl1,
  332.          x2 + (len = (fwidth * 3)) - FGAP, yl1);
  333.   x2 += len;
  334.  
  335.   /* draw "Bootinfo" */
  336.   cptr = "Bootinfo";
  337. /*
  338.   XDrawString (display, window, gc, x2, ys, cptr, len = strlen (cptr));
  339.   XDrawString (display, window, gc, x2 + 1, ys, cptr, len);
  340. */
  341.   XDrawString (display, pixmap, gc, x2, ys, cptr, len = strlen (cptr));
  342.   XDrawString (display, pixmap, gc, x2 + 1, ys, cptr, len);
  343.   x2 += fwidth * len;
  344.  
  345.   /* draw the black line after "Bootinfo" */
  346. /*
  347.   XDrawLine (display, window, gc,
  348.          x2 + FGAP + 1, yl1,
  349.          x2 + (len = (fwidth * 11)), yl1);
  350. */
  351.   XDrawLine (display, pixmap, gc,
  352.          x2 + FGAP + 1, yl1,
  353.          x2 + (len = (fwidth * 11)), yl1);
  354.   x2 += len;
  355.   y += fheight;
  356.  
  357. #if defined(M_UNIX)
  358.   disp_static_long (window, display, gc, DrawAreaXYWH, pixmap, x, y, "basemem  ", "%7ldk     ", SP -> my_bootinfo -> basemem / 1024);
  359.   y += fheight;
  360.   disp_static_long (window, display, gc, DrawAreaXYWH, pixmap, x, y, "extmem   ", "%7ldk     ", SP -> my_bootinfo -> extmem / 1024);
  361.   y += fheight;
  362. #endif
  363.   disp_static_long (window, display, gc, DrawAreaXYWH, pixmap, x, y, "bflags   ", "%08lx     ", SP -> my_bootinfo -> bootflags);
  364.   y += fheight;
  365.  
  366.   cptr = "memory available      ";
  367. /*
  368.   XDrawString (display, window, gc, x, y + FASCENT, cptr, strlen (cptr));
  369. */
  370.   XDrawString (display, pixmap, gc, x, y + FASCENT, cptr, strlen (cptr));
  371.   y += fheight;
  372.  
  373.   for (itmp = 0; itmp < SP -> my_bootinfo -> memavailcnt; itmp++)
  374.     {
  375.       bmem = &SP -> my_bootinfo -> memavail[itmp];
  376.  
  377.       if (bmem -> flags & B_MEM_DOWN)
  378.     {
  379.       bmem -> base -= bmem -> extent;
  380.       bmem -> flags &= ~B_MEM_DOWN;
  381.     }
  382.  
  383.       sprintf (s80, "%08lx %08lx %s", bmem -> base, bmem -> extent,
  384.            bmemf_text (bmem -> flags));
  385. /*
  386.       XDrawString (display, window, gc, x, y + FASCENT, s80, strlen (s80));
  387. */
  388.       XDrawString (display, pixmap, gc, x, y + FASCENT, s80, strlen (s80));
  389.       y += fheight;
  390.     }
  391.  
  392.   cptr = "memory used           ";
  393. /*
  394.   XDrawString (display, window, gc, x, y + FASCENT, cptr, strlen (cptr));
  395. */
  396.   XDrawString (display, pixmap, gc, x, y + FASCENT, cptr, strlen (cptr));
  397.   y += fheight;
  398.   for (itmp = 0; itmp < SP -> my_bootinfo -> memusedcnt; itmp++)
  399.     {
  400.       bmem = &SP -> my_bootinfo -> memused[itmp];
  401.  
  402.       if (bmem -> flags & B_MEM_DOWN)
  403.     {
  404.       bmem -> base -= bmem -> extent;
  405.       bmem -> flags &= ~B_MEM_DOWN;
  406.     }
  407.  
  408.       sprintf (s80, "%08lx %08lx %s", bmem -> base, bmem -> extent,
  409.            bmemf_text (bmem -> flags));
  410. /*
  411.       XDrawString (display, window, gc, x,
  412.                y + FASCENT, s80, strlen (s80));
  413. */
  414.       XDrawString (display, pixmap, gc, x,
  415.            y + FASCENT, s80, strlen (s80));
  416.       y += fheight;
  417.     }
  418.  
  419.   return (y);
  420. }                /* end of draw_Bootinfo */
  421.  
  422.  
  423. /* vi: set tabstop=4 shiftwidth=4: */
  424. /* end of bootinfo.c */
  425.